package com.bbva.kyfb.kyfbutils.constantes;

import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Collections;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;

import com.bbva.jee.arq.spring.core.gce.CodigoError;
import com.bbva.kyfb.kyfbdto.firmas.errores.Errores_kyfb_servicios;

/**
 * The Class Constantes.
 */
public class Constantes {

    /** The Constant CODIGO_AVISO. */
    public static final String CODIGO_AVISO =
        "457";

    /**
     * The peticion pendiente (normal o
     * de usuario).
     */
    public static final int PET_PENDIENTE =
        0;

    /** The peticion confeccion. */
    public static final int PET_CONFECCION =
        1;

    /** The peticion historico. */
    public static final int PET_HISTORICO =
        2;
	
	/** The tipo ordenacion. */
	public static enum TIPO_ORDENACION {SQL, DTO};

    /** The peticion auditoria. */
    public static final int PET_AUDITORIA =
        3;

    /** The orden online. */
    public static final String ORDEN_ONLINE =
        "O";

    /** The orden online. */
    public static final String ORDEN_ONLINE_NOMBRE_FICHERO =
        "ORDEN ONLINE";

    /** The firma host. */
    public static final String FIRMA_HOST =
        "FIRMAHOST";

    /** The vacio. */
    public static final String VACIO =
        "";

    /** The vacio espacio. */
    public static final String VACIO_ESPACIO =
        " ";

    /** The COMA. */
    public static final String COMA =
        ",";

    /** The PUNTO_Y_COMA. */
    public static final String PUNTO_Y_COMA =
        ";";

    /** The COMILLA_SIMPLE. */
    public static final String COMILLA_SIMPLE =
        "'";

    /** The versionsstt. */
    public static final String VERSIONSSTT =
        "200";

    /** The formato asunto. */
    public static final String FORMATO_ASUNTO =
        "40";

    /** The siglas firma servidor. */
    public static final String SIGLAS_FIRMA_SERVIDOR =
        "FS";

    /** The siglas firma host. */
    public static final String SIGLAS_FIRMA_HOST =
        "FH";

    /** The tipo accion delete. */
    public static final String TIPO_ACCION_DELETE =
        "O";

    /** The tipo accion consulta. */
    public static final String TIPO_ACCION_CONSULTA =
        "M";

    /** The tipo accion put. */
    public static final String TIPO_ACCION_PUT =
        "P";

    /** The todo. */
    public static final String TODO =
        "TODO";

    /** The PB_COD_SERV. */
    public static final String PB_COD_SERV =
        "8550";

    /** The PB_XTI_COMPRPER. */
    public static final String PB_XTI_COMPRPER =
        "N";

    /** The PB_SEGMENTO. */
    public static final String PB_SEGMENTO =
        "00000";

    /** The XTITIPOPROD. */
    public static final String XTITIPOPROD =
        "C";

    /** The BANCOINT_ESPANA. */
    public static final String BANCOINT_ESPANA =
        "0001";

    /** The Buzones. */
    public static final String BUZON_DEFECTO =
        "buzones";

    /** The GRABAR DISCLAIMER. */
    public static final String GRABAR_DISCLAIMER =
        "S";

    /** The fecha desde defecto. */
    public static final GregorianCalendar FECHA_DESDE_DEFECTO =
        new GregorianCalendar(
            1900, Calendar.JANUARY, 1);

    /** The fecha hasta defecto. */
    public static final GregorianCalendar FECHA_HASTA_DEFECTO =
        new GregorianCalendar(
            9999, Calendar.DECEMBER, 31);

    /** The importe desde defecto. */
    public static final BigDecimal IMPORTE_DESDE_DEFECTO =
        BigDecimal.ZERO;

    /** The importe hasta defecto. */
    public static final BigDecimal IMPORTE_HASTA_DEFECTO =
        new BigDecimal(
            100000000000000.00); // 15
                                 // digitos
                                 // + 2
                                 // dec

    /** The importe hasta defecto. */
    public static final BigDecimal IMPORTE_HASTA_DEFECTO_2 =
        new BigDecimal(
            999999999999.00); // 12
                              // digitos
                              // + 2 dec

    /** The todo. */
    public static final String CODIGO_APLICACION_TX_010 =
        "11";

    /** The TXTEST. */
    public static final String TXTEST =
        "arqspring.mock.componente.transacciones";

    /** DATOS de INVOKERS. */
    public static final String VAR_LISTA_USUARIO =
        "com.bbva.jee.arq.spring.core.httpclient.url.informacionUsuarioInvoker";

    /**
     * The Constant
     * VAR_MODIF_DATOS_BASICOS.
     */
    public static final String VAR_MODIF_DATOS_BASICOS =
        "com.bbva.jee.arq.spring.core.httpclient.url.modBasicosInvoker";

    /**
     * The Constant
     * VAR_INFO_SERV_INVOKER.
     */
    public static final String VAR_INFO_SERV_INVOKER =
      "com.bbva.jee.arq.spring.core.httpclient.url.informacionServicioInvoker";

    /**
     * The Constant
     * VAR_TOKEN_USUARIO_INVOKER.
     */
    public static final String VAR_TOKEN_USUARIO_INVOKER =
        "com.bbva.jee.arq.spring.core.httpclient.url.tokenUsuarioInvoker";

    /** The Constant VAR_INFO_EMPRESA. */
    public static final String VAR_INFO_EMPRESA =
        "com.bbva.jee.arq.spring.core.httpclient.url.informacionEmpresaInvoker";

    /** The Constant VAR_GESTION_LIMITE. */
    public static final String VAR_GESTION_LIMITE =
        "com.bbva.jee.arq.spring.core.httpclient.url.gestionLimiteInvoker";

    /**
     * Este mapa sirve para administrar
     * los errores lanzados por peticion
     * de detalle. Se devuelve valor por
     * defecto en caso de no encontrar
     * la clave.
     */
    public static final Map<String, CodigoError> ERRORES_DETALLE_MAP =
        Collections
            .unmodifiableMap(new HashMap<String, CodigoError>() {

                /**
                 * Default serial
                 * version UID
                 */
                private static final long serialVersionUID =
                    1L;

                @Override
                public CodigoError get(final Object key) {
                    if (!containsKey(key)) {
                        return Errores_kyfb_servicios.ERROR_GENERICO_EN_LA_REALIZACION_DEL_DETALLE;
                    }
                    return super
                        .get(key);
                }

                {
                    put("ASI0100000", Errores_kyfb_servicios.OK);
                    put("ASI0100001",
                        Errores_kyfb_servicios.ERROR_GENERICO_EN_LA_REALIZACION_DEL_DETALLE);
                    put("ASI0100002", Errores_kyfb_servicios.ERROR_BBDD);
                    put("ASI0100003",
                        Errores_kyfb_servicios.EL_FICHERO_NO_EXISTE);
                    put("ASI0100004",
                        Errores_kyfb_servicios.EL_FICHERO_ESTA_VACIO);
                    put("ASI0100005",
                        Errores_kyfb_servicios.EL_FICHERO_EXCEDE_EL_TAMANIO_MAXIMO_PERMITIDO);
                }
            });

    /*
     * LANZAR ASISTENTES
     */

    /** The CBTFTEST. */
    public static final String CBTFTEST =
        "arqspring.mock.componente.cbtfTest";

    /** The URLPAU. */
    public static final String URLPAU =
        "VAR.URL.PAU";

    /** The COD_PAIS. */
    public static final int COD_PAIS =
        11;

    /** The NOT_FOUND. */
    public static final String NOT_FOUND =
        "NOT_FOUND";

    /** The GZIP_DEFLATE_SDCH. */
    public static final String GZIP_DEFLATE_SDCH =
        "gzip,deflate,sdch";

    /** The MAX_AGE_0. */
    public static final String MAX_AGE_0 =
        "max-age=0";

    /** The KEEP_ALIVE. */
    public static final String KEEP_ALIVE =
        "keep-alive";

    /** The COOKIE. */
    public static final String COOKIE =
        "Cookie";

    /** The ACCEPT_LANGUAGE. */
    public static final String ACCEPT_LANGUAGE =
        "Accept-Language";

    /** The USER_AGENT. */
    public static final String USER_AGENT =
        "User-Agent";

    /** The ACCEPT. */
    public static final String ACCEPT =
        "Accept";

    /** The ACCEPT_ENCODING. */
    public static final String ACCEPT_ENCODING =
        "Accept-Encoding";

    /** The CACHE_CONTROL. */
    public static final String CACHE_CONTROL =
        "Cache-Control";

    /** The CONNECTION. */
    public static final String CONNECTION =
        "Connection";

    /** The HOST. */
    public static final String HOST =
        "Host";

    /** The AMPERSAN. */
    public static final String AMPERSAN =
        "&";

    /** The IVUSER. */
    public static final String IVUSER =
        "iv-user";

    /** The IVCODBAN. */
    public static final String IVCODBAN =
        "iv-cod_ban_int";

    /** The IVGROUPS. */
    public static final String IVGROUPS =
        "iv-groups";

    /** The IVIDUNICO. */
    public static final String IVIDUNICO =
        "iv-idunico";

    /** The IVTIPOUSU. */
    public static final String IVTIPOUSU =
        "iv-tipo_usu";

    /** The IVCODUSU. */
    public static final String IVCODUSU =
        "iv-cod_usu";

    /** The IVCODCANAL. */
    public static final String IVCODCANAL =
        "iv-cod_canal";

    /** The IVCODEMP. */
    public static final String IVCODEMP =
        "iv-cod_emp";

    /** The VARHOSTPAU. */
    public static final String VARHOSTPAU =
        "VAR.URL.HOSTPAU";

    /**
     * The codigo Logon para Ficheros
     * estados intermedios.
     */
    public static final String CODIGO_LOGON_APL =
        "ORDENESCSB";

    /**
     * The pagos internacionales
     * espania.
     */
    public static final String PAGOS_INT_ESPANA =
        "TIN";

    /** The multidivisa. */
    public static final String MULTIDIVISA =
        "MUL";
    /*
     * LANZAR PNM
     */

    /** The RAIZ. */
    public static final String RAIZ =
        "VAR.RAIZENTORNO";

    /** The RUTA_PNM_SH. */
    public static final String RUTA_PNM_SH =
        "VAR.RUTASCRIPALERTAPNM";

    /** The NOMBRE_PNM_SH. */
    public static final String NOMBRE_PNM_SH =
        "VAR.NOMBRESH";

    /** The CAMPO_VACIO_SH. */
    public static final String CAMPO_VACIO_SH =
        "\"\"";

    /** The ID_ALERTA_ORDEN. */
    public static final String ID_ALERTA_ORDEN =
        "VAR.IDALERTAORDEN";

    /** The ID_ALERTA_FICHERO. */
    public static final String ID_ALERTA_FICHERO =
        "VAR.IDALERTAFICHERO";

    /** The ALMOADILLA. */
    public static final String ALMOADILLA =
        "#";

    /*
     * ERRORES DE TX QUE NO CORTAN
     * EJECUCION
     */

    /**
     * The
     * ERROR_TX_DEMASIADAS_RESPUESTAS.
     */
    public static final String ERROR_TX_DEMASIADAS_RESPUESTAS =
        "C110";

    /** The ERROR_TX_ERROR BBDD. */
    public static final String ERROR_TX_ERROR_BBDD =
        "B000";

    /**
     * The ERROR_TX_INFORMACION
     * INEXSISTENTE.
     */
    public static final String ERROR_TX_INFORMACION_INEXISTENTE =
        "V038";

    /*
     * LANZAR NOTIFICACION
     */

    /** The RUTA_SCRIPT_NOTIFICACION. */
    public static final String RUTA_SCRIPT_NOTIFICACION =
        "VAR.RUTASCRIPTNOTIFICACION";

    /** The NOMBRE_SH_NOTIFICACION. */
    public static final String NOMBRE_SH_NOTIFICACION =
        "VAR.NOMBRESHNOTIFICACION";

    /** The XSN_AVISNOTI. */
    public static final String XSN_AVISNOTI =
        "S";

    /** The PARAMETRO8. */
    public static final String PARAMETRO8 =
        "1";

    /** The PARAMETRO9. */
    public static final String PARAMETRO9 =
        "PA";

    /**
     * RESPUESTA OK ELIMINAR ORDEN
     * ONLINE T.HOST
     **/
    public static final String AVISO_HOST_ORDEN_ELIMINADA =
        "59J";

    /**
     * RESPUESTA ERROR DNI NO APODERADO
     * ELIMINAR ORDEN ONLINE T.HOST
     **/
    public static final String DNI_NO_APODERADO =
        "313";

    /**
     * RESPUESTA ERROR DNI NO EXISTE
     * COMO APODERADO ELIMINAR ORDEN
     * ONLINE T.HOST
     **/
    public static final String DNI_NO_EXISTE_APODERADO =
        "6JJ";

    /** FECHA CREACION*. */
    public static final String FECHA_CREACION =
        "FC";

    /** The Constant POS_CERO. */
    public static final int POS_CERO =
        0;

    /** The Constant POS_UNO. */
    public static final int POS_UNO =
        1;

    /** The Constant POS_DOS. */
    public static final int POS_DOS =
        2;

    /** The Constant POS_TRES. */
    public static final int POS_TRES =
        3;

    /** The Constant POS_CUATRO. */
    public static final int POS_CUATRO =
        4;

    /** The Constant POS_CINCO. */
    public static final int POS_CINCO =
        5;

    /** The Constant POS_SEIS. */
    public static final int POS_SEIS =
        6;

    /** The Constant POS_SIETE. */
    public static final int POS_SIETE =
        7;

    /** The Constant POS_OCHO. */
    public static final int POS_OCHO =
        8;

    /** The Constant POS_NUEVE. */
    public static final int POS_NUEVE =
        9;

    /** The Constant POS_DIEZ. */
    public static final int POS_DIEZ =
        10;

    /** The Constant POS_ONCE. */
    public static final int POS_ONCE =
        11;

    /** The Constant POS_DOCE. */
    public static final int POS_DOCE =
        12;

    /** The Constant POS_TRECE. */
    public static final int POS_TRECE =
        13;

    /** The Constant POS_CATORCE. */
    public static final int POS_CATORCE =
        14;

    /** The Constant POS_QUINCE. */
    public static final int POS_QUINCE =
        15;

    /** The Constant POS_DIECISEIS. */
    public static final int POS_DIECISEIS =
        16;

    /** The Constant POS_DIECISETE. */
    public static final int POS_DIECISIETE =
        17;

    /** The Constant POS_MENOS_UNO. */
    public static final int POS_MENOS_UNO =
        -1;

    /** The Constant FC_LENGTH. */
    public static final int FC_LENGTH =
        3;

    /** The Constant SB_FECHA. */
    public static final int SB_FECHA =
        8;

    /** The Constant IDVACIO. */
    public static final String IDVACIO =
        "00000000";

    /** The Constant CUATRO_FORMAT. */
    public static final int CUATRO_FORMAT =
        4;

    /** The Constant CERO_FORMAT. */
    public static final String CERO_FORMAT =
        "0";

    /** The Constant PET_FIRM. */
    public static final short PET_FIRM =
        4;

    /** The Constant CORRUPTOS_HOST. */
    public static final String CORRUPTOS_HOST =
        "kyfb.insertarcorruptos.ficheros";
}
